This background description is provided for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, material described in this section is neither expressly nor impliedly admitted to be prior art to the present disclosure or the appended claims.
The amount of information in a digital image can be enormous. For a set of images, that amount increases proportionally with the number of images in the set. Consequently, both storing and transmitting a set of images can place a substantial burden on computing resources. To address this, techniques have been developed to “compress” image information. Compression involves encoding the image information in such a way that the resulting information burdens resources less (e.g., takes up less storage space) than if the image information is not compressed. These techniques generally rely on redundancy or predictability in the image information. For example, an image of a million pixels, all of which are pure white, could be stored using a million data points, each of which represents one pixel at a particular location in the image and having the color white. The image could be represented with far fewer data points, however. Specifically, the image could be represented using data points that specify the boundary of a region and that the region within the boundary is white. This is a simple example of “spatial” encoding.
In “spatial” encoding, the color of a small region can be predicted from the values of nearby regions. The predicted value is compared against the actual value. When encoded, the small region is represented by a delta between the predicted value and its actual value. The process is reversed for decoding such that the region value is predicted from nearby “known” (e.g., already decoded) regions, and the delta is applied to result in the actual value of the region. In most cases, spatial encoding results in a tremendous amount of image compression, e.g., a tremendous savings in the resources used to represent an image.
Images in a temporal sequence can be compressed using “temporal” prediction. When an image in a sequence of images (e.g., frames of video content) is encoded using temporal prediction, previous and subsequent images in the sequence can be used to predict data points for the image under consideration. Like spatial prediction, just the difference between the predicted image and the actual image may be encoded with temporal prediction. Performing spatial and temporal prediction, and storing or transmitting the resulting information, however, can still burden computing resources.